/*
 *  1.主进程通过基类调用库中的成员函数
 *  2.库里面定义的类需继承自该基类
 */
#ifndef _TEST_BASE_H_
#define _TEST_BASE_H_

class Test
{
public:
    //即使基类用不到析构也定义一个虚析构,避免warnning
    //同时由于这里做了函数定义,最好文件命名为.hpp
    virtual ~Test() {}

    virtual int FunAdd(int a, int b) = 0;
    virtual int FunPrint(const char* str) = 0;
};

//主进程只需要dlsym获得构造和析构函数
typedef Test* (*TEST_CREATE)(int);
typedef void (*TEST_RELEASE)(Test*);

#endif //_TEST_BASE_H_
